package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.VO.operate.OperateDeviceWhiteListAuthRulesVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      运营-设备白名单授权文件规则管理数据访问层接口
 * </desc>
 *
 * @createDate  2020/08/11
 */
@Mapper
@Repository
public interface IOperateDeviceWhiteListAuthRulesDao {

    /**
     * <desc>
     *      保存设备白名单授权文件规则信息
     * </desc>
     *
     * @param params 设备白名单授权文件规则
     * @return
     * @Author Juguang.S
     * @createDate  2020/08/11
     */
    Integer save(Map<String, Object> params);

    /**
     * <desc>
     *     禁用启用设备白名单授权文件规则信息
     * </desc>
     *
     * @param params 更新参数map
     * @return
     * @Author Juguang.S
     * @createDate  2020/08/11
     */
    Integer update(Map<String, Object> params);

    /**
     * <desc>
     *      分页获取设备白名单授权文件规则信息
     * </desc>
     *
     * @param params 查询参数
     * @return
     * @Author Juguang.S
     * @createDate  2020/08/11
     */
    List<OperateDeviceWhiteListAuthRulesVO> getWhiteListAuthRulesByPage(Map<String, Object> params);



    /**
     * <desc>
     *      获取白名单授权文件规则数量
     * </desc>
     *
     * @param params 查询参数
     * @return
     * @Author Juguang.S
     * @createDate  2020/08/11
     */
    Integer getWhiteListAuthRulesByPageCount(Map<String, Object> params);

    
    
    
    /**
    *<desc>
    * 根据授权规则id更新授权可用次数
    *</desc>
    *
    * @Author  chengshican
    * @Date   2020-08-16 9:31
    * @Param  usedTimes 可用次数  ruleId规则id
    * @Return      
    * @Exception   
    * 
    */
    Integer updateWhiteListAuthRulesByRuleId(@Param("usedTimes") Integer usedTimes,@Param("ruleId") String ruleId);


    /**
    *<desc>
    * 根据输入的密码获取设备白名单授权文件规则信息集合
    *</desc>
    *
    * @Author  chengshican
    * @Date   2020-08-20 9:18
    * @Param  params 查询参数
    * @Return      
    * @Exception   
    * 
    */
    List<OperateDeviceWhiteListAuthRulesVO> getWhiteListAuthRulesByList(Map<String, Object> params);

    /**
     * <desc>
     *      校验同一时间内的密码不能重复
     * </desc>
     *
     * @param
     * @return
     * @Author Juguang.S
     * @createDate  2020/08/20
     */
    Integer checkPassword(@Param("password") String password,@Param("startTime") String startTime,@Param("endTime") String endTime);

}
